开发板

您所在的位置:网站首页 imx6ull lcd驱动 开发板

开发板

2023-07-24 21:44| 来源: 网络整理| 查看: 265

屏幕控制(LCD和触摸屏) LCD显示显示bmp格式图片显示jpeg格式图片 触摸屏的使用

LCD显示 打开LCD屏幕 open需要包含的头文件 #include #include #include int fd_lcd = open("/dev/fb0", O_RDWR); 建立映射,将LCD文件映射到一片内存 mmap需要包含的头文件 #include unsigned int * plcd = mmap( NULL, //是否指定内存 heigh_lcd*width_lcd*4, //申请内存的大小 PROT_READ | PROT_WRITE, //申请内存的权限 MAP_SHARED, //内存是否共享 fd_lcd, //文件描述符 0); //偏移量 显示bmp格式图片

bmp格式的图片是没有经过压缩的的图片,所以打开的方式较为简单。

打开bmp图片 int fd_bmp = open("./pic.bmp", O_REWR); 将图片映射到一片内存 unsigned char * pbmp = mmap(NULL, //是否指定内存 heigh_bmp*width_bmp*3, //申请内存的大小 PROT_READ | PROT_WRITE, //申请内存的权限 MAP_SHARED, //内存是否共享 fd_bmp, //文件描述符 0); //偏移量 读取图片的数据,然后写入LCD int x, y; //逐行写入 for(y=0; y //合成像素点 *(plcd + x + width*y) = (*(pbmp + 0 + 3*x + width*y) //合成并显示像素点 *(plcd+y*800+x) = (*(buffer+0+3*x) //触摸屏所需要的结构体 struct input_event ts_buf; //记录读取的次数 int count = 0; //2、读取触摸屏的数据 while(1){ read(fd_ts, &ts_buf, sizeof(ts_buf)); //获取x轴坐标值 if (ts_buf.type == EV_ABS && ts_buf.code == ABS_X){ count++; //记录读到的x坐标的值 *ts_x = ts_buf.value; } //获取y轴坐标值 if (ts_buf.type == EV_ABS && ts_buf.code == ABS_Y){ count++; //记录读到的y坐标的值 *ts_y = ts_buf.value; } if(2 == count){ printf("(%d, %d)\n", *ts_x, *ts_y); //延时3000ms usleep(3000); count = 0; break; } } }

本文仅为学习笔记,欢迎纠错



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3